package com.csair.seam.domain.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.csair.seam.domain.model.entity.Inventory;
import com.csair.seam.domain.model.entity.InventoryFeedback;
import com.csair.seam.domain.model.entity.InventoryRecord;
import com.csair.seam.domain.model.entity.LocationTreeNode;
import com.csair.seam.domain.model.param.EquipParam;


public interface InventoryMapper {
	
	/**
	 * @description 盘点设备列表（分页）
	 * @param page
	 * @param param
	 * @return
	 */
	Page<Inventory> findInventoryPage(Page<Inventory> page,@Param("params") EquipParam param);
	
	/**
	 * @description 根据表体id获取盘点信息
	 * @param id
	 * @return
	 */
	Inventory findInventoryById(String id);
	
	/**
	 * @description 根据表体id集合获取盘点信息列表
	 * @param ids
	 * @return
	 */
	List<Inventory> findInventoryByIds(List<String> ids);
	
	/**
	 * @description 更新盘点表体信息
	 * @param feedback
	 */
	int updateInventory(InventoryFeedback feedback);
	
	/**
	 * @description 撤回盘点更新盘点表体信息
	 * @param id
	 * @return
	 */
	int updateRevoke(String id);
	
	/**
	 * @description 查询某个人某个设备的盘点记录
	 * @param param
	 * @return
	 */
	List<InventoryRecord> findInventoryRecord(@Param("params") EquipParam param);
	
	/**
	 * @description 查询需要E家通知的未盘点设备
	 * @return
	 */
	List<Inventory> findInventoryEhomeNoticeList();
	
	/**
	 * @description 将已进行E家通知的盘点设备def改为“Y”
	 * @param ids
	 * @return
	 */
	int updateInventoryNotice(List<String> ids);
	
	/**
	 * @description 查询位置的树形列表
	 * @param
	 * @return
	 */
	List<LocationTreeNode> findLocationTree(String fkParent);
	
	/**
	 * @description 查询指定位置的子列表
	 * @param
	 * @return
	 */
	List<LocationTreeNode> findLocationNodeList(String fkParent);

}
